Present day computer systems usually include one or more magnetic disk units for bulk storage. In a multiuser system, each user has the capability to read records from and write records to the disk units. Since disk operations take appreciable time in comparison with other computer operations, the efficiency with which disk operations are performed significantly affects overall system performance.
In general, the portion of a computer system associated with a disk unit includes the disk and associated drive hardware, disk controller software associated with the disk drive, disk driver software in the central processing unit and a communication channel between the disk driver and the disk controller. The disk driver receives requests from users via the operating system and communicates the requests through the communication channel to the disk controller. The disk controller receives the requests from the disk driver, provides the necessary signals to the disk drive hardware and returns information to the disk driver.
A user disk read or write request may involve several operations on a machine level. In prior art systems, the disk controller received only one instruction, such as SELECT, SEEK, READ or WRITE, at a time. Until the previous command was executed, the controller did not receive the next command. This mode of operation is inefficient because the CPU is required to perform several operations during which time other user disk requests are required to wait. In addition, the disk controller is not necessarily operating in the most efficient manner since it must execute each command in the order specified by the disk driver.